import React, { Component } from 'react';

/*
  学习目标：生命周期 - 卸载阶段
  三个阶段
     1. 挂载时
     2. 更新时
     3. 卸载时
*/

export default class App extends Component {
  state = {
    isShow: true,
  };

  render() {
    const { isShow } = this.state;
    return (
      <div>
        <h1>helloReact</h1>
        {isShow && <Child count={1}></Child>}
      </div>
    );
  }
}

// 需求：
// 1. 挂载后开启定时器
// 2.卸载时，关闭定时器

class Child extends React.Component {
  // 挂载后的钩子函数，叫什么？
  componentDidMount() {
    this.timerId = setInterval(() => {
      console.log('定时器在执行  ----->  ');
    }, 100);
  }

  // 对比： vue中的beforeDestory
  // 作用：🔔做清除的动作-清除定时器、清除监听的事件
  componentWillUnmount() {
    console.log('我要被卸载掉了  ----->  ');

    clearInterval(this.timerId);
  }
  render() {
    return <div>Child</div>;
  }
}
